package com.micro.modual.mapper;


import com.micro.core.frame.mapper.BasicsMapper;
import com.micro.modual.entity.SystemMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
*  <h1></h1>
 * @author levelcoder
 * @version V1.0.0
 * @email LevelCoder@126.com
 * @date 2020-08-04 00:11:10
 */
public interface SystemMenuMapper extends BasicsMapper<SystemMenu>{


    /**
     * <h2>查找系统菜单表 列表</h2>
     * @param params 列表查询请求对象
     * @return {@link SystemMenu } s 系统菜单表 列表返回对象
     */
    List<SystemMenu> findSystemMenuList(Map<String, Object> params);

    /**
     * <h2>根据父类编号查询子集数量</h2>
     * @param parentCode 父类编号
     * @return
     */
    int hasChild(@Param("parentCode") String parentCode);

    /**
     * <h2>根据菜单名查询菜单总条数</h2>
     * @param menuName 菜单名称
     * @return
     */
    int findMenuExist(@Param("menuName") String menuName);

    /**
     * <h2>根据用户编号获取当前用户所有可访问的菜单列表</h2>
     * @param userCode   用户编号
     * @return    {@link SystemMenu} s 系统菜单表
     */
    List<SystemMenu> findUserAuthorityMenuByUserCode(String userCode);

}
